In computer graphics, texture mapping is a method for adding detail, surface texture, or color to a graphic object or 3D model. Texture filtering or smoothing is a method of determining the texture color for a texture mapped object using the colors of nearby texels (texture pixels) to allow a texture to be applied to many different shapes, sizes and angles while alleviating aliasing due to sampling artifacts.
UV mapping is a common 3D modeling process of making a 2D image representation of a 3D model that projects a texture map onto a 3D object. The process involves assigning pixels in the image to surface mappings on the polygon, typically by copying triangular (or other polygon) faces of the image map onto corresponding polygons on the object. When a model is created as a polygon mesh, UV coordinates (where ‘U’ and ‘V’ denote the axes of the 2D texture) can be generated for each vertex in the mesh. This is done by unfolding the polygon mesh at the seams and laying them out flat. Once the model is unwrapped, an artist can paint a texture on each polygon individually, and when the scene is rendered each polygon will then map to the appropriate texture.
A fundamental texture authoring problem is that it is difficult to unwrap a mesh with arbitrary topology onto a continuous 2D rectangular texture domain. In general, meshes are broken into pieces that are unwrapped into charts and packed into a rectangular texture domain as an atlas. Artists typically spend a great deal of time setting up UV coordinates to minimize distortion and wasted space in the texture when they could instead be working on the actual painting and modeling. Another problem associated with UV modeling is that edges of each chart in the atlas introduce seam artifacts. This seam problem is especially pronounced when the texture is a displacement map used for hardware tessellation, as any discrepancy manifests as a crack in the surface.
Per-face texturing (Ptex) is a texture mapping system that was developed to address some of the issues with UV mapping. Ptex associates a small independent texture map with each face of the mesh and thus applies a separate texture to each face of a polygon mesh. The main advantages of Ptex over conventional texture atlasing is that there is no need for explicit UV definitions and there are no seaming issues arising from unwrapping a complete mesh of arbitrary topology onto a single-texture domain. Ptex, however, has certain drawbacks relative to conventional texture atlasing. Significantly, Ptex is limited with regard to real time performance, in that it is typically not practical to have an individual texture for each primitive, and the indirection required when a filter kernel crosses from one face to another is costly in performance, and precludes the use of any hardware texture filtering. The existing Ptex method does not address displacement mapping or texture compression, and other methods that involve displacement maps require manual fix-up or are restricted to simple models.
The subject matter discussed in the background section should not be assumed to be prior art merely as a result of its mention in the background section. Similarly, a problem mentioned in the background section or associated with the subject matter of the background section should not be assumed to have been previously recognized in the prior art. The subject matter in the background section merely represents different approaches.